Protection of data on failing storage devices

ABSTRACT

A management apparatus operable for protecting data on a failing storage device in a data processing system including a storage array having at least one of a plurality of storage devices. The management apparatus includes a receiver component for receiving a failure message indicating that the plurality of storage devices comprises the failing storage device. An analyzer component is in communication with the receiver component and responsive to receipt of the failure message, for analyzing the failure message. A sender component is in communication with the analyzer component. The sender component is adapted for, in response to the analyzer component determining the failing storage device, sending a zoning message, the zoning message instructing the storage array to isolate the failing storage device, and sending a protect message. The protect message instructs the storage array to protect data on the failing storage device.

CLAIM TO FOREIGN PRIORITY

This application claims priority to European Patent Application No.09161492.5, filed May 25, 2009, and entitled “An Apparatus, Method andComputer Program for Protecting Data on Failing Storage Devices.”

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general to computers, and moreparticularly to apparatus, method and computer program productembodiments for protecting data on failed storage devices in a computingstorage environment.

2. Description of the Related Art

Storage subsystems comprise a plurality of storage devices, with whichattached computing equipment may co-operate. Typically, storage devicesare configured into an array network. Arrays may be configured as Just aBunch of Disks (JBOD) devices, or Redundant Array of Inexpensive Disks(RAID) devices. RAID provides a method whereby storage reliability,capacity and availability may be built into a storage subsystem usinglow cost storage devices using storage device arrays with inbuiltredundancy. RAID may come in many forms depending on the relative tradeoff requirements of reliability, capacity and availability of data.

SUMMARY OF THE INVENTION

Storage devices may fail for many different reasons, with varyingdegrees of failure. Typically, storage devices do not fail completely,allowing some data to be recovered from a failed device. Failure of suchstorage devices may be tolerated in typical storage subsystems, becausethe data on a failing device may be recovered from the non-failingstorage devices if the storage subsystem provides storage redundancy.

Once a failed storage device is no longer required in the storagesubsystem, the failed storage device is often physically removed.However, in this event, data owners may want to protect any remainingdata on the storage device, especially if the storage device is leavingtheir premises. One method to protect the information is to erase thedata, or to overwrite the data before the storage device is taken offthe premises. Another method is through cryptographic techniques. Diskencryption allows information to be protected through hardware orsoftware cryptographic techniques. Disk encryption provides a techniqueto protect data by encrypting the storage device surface media and alsoprovides a technique to cryptographically erase this media to delete anycustomer data. Cryptographic erasure is typically achieved through thereplacement of the encryption keys that were used to encrypt the data.

However, in the event of a storage device failure, a typical storagesubsystem protects the rest of the subsystem by bypassing the failedstorage device from the subsystem and preventing any potentialperturbance and, typically, preventing I/Os involving the failed devicein order to avoid corruption of data. A failing storage device may causenetwork issues that may affect the availability of the other disks inthe array. When the storage device is bypassed no access may safely begiven to the storage device to delete any data on the storage device.Therefore, there is a need in the art to address the aforementionedproblem.

In view of the foregoing, various embodiments for protecting data onfailed storage devices in computing storage environments are provided.In one embodiment, by way of example only, a management apparatus isoperable for protecting data on a failing storage device in a dataprocessing system inclusive of a storage array having at least one of aplurality of storage devices. The management apparatus comprises areceiver component for receiving a failure message indicating that theplurality of storage devices comprises the failing storage device. Themanagement apparatus further comprises an analyzer component, responsiveto receipt of a failure message, for analyzing the failure message. Themanagement apparatus further comprises a sender component, in responseto the analyzer component determining the failing storage device, forsending a zoning message, the zoning message instructing the storagearray to isolate the failing storage device. Finally, the managementapparatus further comprises a sender component for sending a protectmessage, the protect message instructing the storage array to protectdata on the failing storage device.

Additional method and computer program product embodiments are providedand supply related advantages.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsthat are illustrated in the appended drawings. Understanding that thesedrawings depict embodiments of the invention and are not therefore to beconsidered to be limiting of its scope, the invention will be describedand explained with additional specificity and detail through the use ofthe accompanying drawings, in which:

FIG. 1 is a block diagram depicting a data processing system in whichthe present invention may be embodied;

FIG. 2 is a further block diagram depicting a data processing system inwhich the present invention may be embodied;

FIG. 3 is an exemplary further block diagram depicting a data processingsystem in which the present invention may be embodied;

FIG. 4 is a further block diagram depicting the data processing systemof FIG. 3 in which the present invention may be embodied;

FIG. 5 is a high-level exemplary schematic flow diagram depictingtypical operation method steps performed for protecting data on afailing storage device in accordance with a preferred embodiment of thepresent invention; and

FIG. 6 is an exemplary block diagram depicting a management apparatus inwhich the present invention may be embodied.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting a data processing system 10 in whichthe present invention may be embodied. The illustrated data processingsystem 10 comprises a server node 20, which is connectable through anetwork 30 to a back-end storage subsystem 90. A network 30 typicallycomprises a network device 35, for example a switch, and cabling thatconnect a server node 20 to a hardware back-end storage subsystem 90.The storage subsystem 90 may comprise a variety of physical storagedevices, for example, storage enclosures comprising a Just a Bunch ofDisks (JBOD) device 50, or a RAID array 40. The RAID array 40 comprisesa plurality of storage devices 60. The data processing system 10 ismanaged by a management server 75, connectable to the server node 20,the storage subsystem 90, and the SAN fabric devices 31 through the SANfabric 30 or through a separate Local Area Network (LAN) 95.

A management apparatus is operable within the data processing system 10processing data available from the networks 30, 95, or from otherhardware and software system components within the data processingsystem 10, for example from a Reliability, Availability andServiceability (RAS) component (not depicted). One of ordinary skillwill appreciate that the management apparatus 600 may be operable in aplurality of components that comprise the data processing system 10,including as an agent within the storage subsystem 90.

Small Computer System Interface (SCSI) is an example of a typicalstandard for transferring data between computers and storage subsystems.A SCSI initiator, hereinafter called an initiator, is an endpoint thatinitiates a transaction. SCSI will be used to illustrate a preferredembodiment of the present invention, however, those of ordinary skill inthe art will appreciate that the present invention may be implemented bya number of protocols, component variations, and that multiplecomponents may be operable for one or multiple operations associatedwith the invention.

FIG. 2 is a further block diagram depicting a data processing system100, 200 in which the present invention may be embodied. The illustrateddata processing system 200 comprises an initiator 210, which isconnectable through a network 30 to a storage enclosure 220. The storageenclosure comprises: a switch 230; a SCSI Enclosure Services (SES) node240; and storage devices 260. The enclosure components are connectablethrough an internal network 250, as illustrated. Examples of storagedevices are disk drives, and tape drives. An SES node 240 is a SCSI nodethat supports a subset of SCSI commands used by an initiator 210 tocontrol the storage enclosure 220, for example by providing access tocontrol the enclosure power. A plurality of different internal networks250 is supported by SCSI storage enclosures 220. One example is fibrechannel arbitrated loop (FCAL) network, which will be used hereinafterto illustrate a preferred embodiment of the present invention. Theinitiator 210 controls all read and write accesses to the customer dataon the storage devices 260, as it is essential that customer data iscontrolled at a system level, which the initiator 210 represents. Forthis reason, the SES node 240 does not have write access to customerdata, as is not have a system view.

FIG. 3 is an exemplary further block diagram depicting a data processingsystem 100, 200, 300 in which the present invention may be embodied. Theillustrated data processing system 100, 200, 300 comprises initiator A310 and initiator B 315, which are connectable through internal network250, 350 to storage devices 260, 360, 365 and also to SES node 240, 340.In the configuration illustrated, initiator A 310 and initiator B 315are provided for redundancy. Enclosure switch 230 (not depicted)configures initiator A 310, initiator B 315, storage devices 260, 360,365 and SES node 240, 340 into a SCSI zone A 370. In an alternativeembodiment, only one initiator is provided in the configuration.

FIG. 4 is a further block diagram depicting the data processing system100, 200, 300, 400 of FIG. 3 in which the present invention may beembodied. The illustrated data processing system 100, 200, 300, 400comprises initiators A 310, 410 and initiator B 315, 415 which areconnectable through internal network 250, 350, 450 to storage devices260, 360, 460 and also to SES node 240, 340, 440. Following a failure ofstorage device 465, enclosure switch 230 (not depicted) configuresinitiator A 310, 410, initiator B 315, 415, storage devices 260, 360,460, and SES node 240, 340, 440 into SCSI zone A 370, 470. The enclosureswitch isolates failing device 465 from SCSI zone A 370, 470, byconfiguring failing storage device 465 and SES node 240, 340, 440 intoSCSI zone B 480. Isolation of failing storage device 465 protects theremaining storage devices 260, 360, 460 from adverse effects of thefailing storage device 465.

SES node 240, 340, 440 is connectable to the failing storage device 465through internal network 250, 414. Neither initiator A 310, 410, norinitiator B 315, 415 has direct connectivity with the failing storagedevice 365, 465. Access to the SES node 240, 340, 440 from initiator A410 is provided through an internal network 350, 450. In response to aSCSI command from one initiator 310, 410, the SES node 240, 340, 440sends a further command to the failing storage device 465. Indirectaccess is also provided for initiator B 315, 415 through initiator A310, 410 by using internal network 350, 450.

FIG. 5, which should be read in conjunction with FIGS. 4 and 6, is ahigh-level exemplary schematic flow diagram 500 depicting typicaloperation method steps performed for protecting data on a failingstorage device 465 in accordance with one embodiment of the presentinvention. FIG. 6 is an exemplary block diagram depicting a managementapparatus in which the present invention may be embodied. FIG. 5 is setforth as a logical flow chart diagram. As such, the depicted order andlabeled steps are indicative of one embodiment of the presented method.Other steps and methods may be conceived that are equivalent infunction, logic, or effect of one or more steps or portions thereof, ofthe illustrated method. Additionally the format and symbols employed areprovided to explain the logical steps of the method and are understoodnot to limit the scope of the method. FIG. 6 depicts a managementapparatus in accordance with one embodiment of the present invention.

Turning to FIG. 5, the method 500 starts at step 510. At step 520, afailing storage device 465 is identified using prior art techniques. Afailure message comprising failure information is received by thereceiver component 620 of the management apparatus 600 from the network30, 630, or from other hardware and software system components 650within the data processing system 10. Exemplary information used toidentify a failing storage device 465 includes the storage device mediumerror rates and key code qualifiers (KCQ) error codes returned by theSCSI storage device 465 to the management apparatus 600. Alternatively,the management apparatus 600 may also detect the number of dropped dataframes from the failing storage device 465. Having received the failureinformation, the management apparatus uses the analyzer component 640 tocompare the failure information against predefined criteria.Alternatively, the failure information may comprise information thatalready specifies that the storage device 465 is failing.

At step 530, as a failing storage device 465 has already beenidentified, the management apparatus 600 isolates the failing storagedevice 465 by sending a zoning message specifying a command through thesender component 610 to the SES node 240, 340, 440 through the enclosureswitch 230. The command directs the SES node 240, 340, 440 to pass acommand back to the enclosure switch 230 to isolate the failing storagedevice 465 from SCSI zone A 370, 470, and also to establish SCSI zone B480 containing failing storage device 465 and SES node 240, 340, 440.This fulfils the requirement of removing the bad storage devices fromthe normal zone but gives access to issue commands to the storage devicevia the SES node.

Data on the failing storage device 465 may still be recovered underfailing conditions. However, this should be achieved without disruptionto the storage devices 260, 360, 460 that are not failing. If thestorage devices 260, 360, 460, 465 comprise a RAID array, techniques maybe used to reconstruct data found on the failing storage device 465,from data on storage devices 260, 360, 460, onto a spare storage device(not depicted) configured into the RAID array. In the event that amedium error is found on a storage device, 260, 360, 460, datacorresponding to the medium error may not be reconstructed solely fromthe storage devices, 260, 360, 460. The spare storage device is markedwith a kill sector to designate that data may not be reconstructed.However, data may be recovered from the failing storage device 465 forthe kill sector. Failing storage devices 465 may be isolated into a SCSIzone with the SES node 240, 340, 440. In this example, the SES node maybe used to read data from the failing storage device 465. It isessential that the integrity of customer data is maintained. Therefore,only initiators are permitted to write data to storage devices, becauseif multiple components have such permission, there is potential for datawritten by one initiator to be overwritten by another. Once such datarecovery operations are completed, a further message may be passed tothe management apparatus.

At step 540, the management apparatus analyses whether the failingstorage device 465 is required anymore within in the data processingsystem 10, and more specifically whether the customer data on thefailing storage device 465 requires to be permanently protected. In oneembodiment, step 540 is looped until the customer data is no longerrequired. If the customer data on the failing storage device 465requires to be permanently protected, control passes to step 550.

Customer data may be protected by either permanently removing access tothe customer data, or by permanently removing the customer data. Manystorage devices support encryption within the storage device. Data onthe storage medium may be encrypted by internal encryption keys storedon the storage device itself. Secure access to the storage device isprovided by an external authentication credential encryption keyexchange between an initiator and the storage device. For example, whenan initiator requires access to a storage device, it may exchange anappropriate external authentication credential encryption key with thestorage device. If the exchange is validated, the storage device uses anexchange of internal keys, which are not available externally, toencrypt or decrypt data on the storage device.

One example of encryption is Disk Encryption, as provided by compliancewith the Trusted Computing Group™ (TCG) Storage Architecture CoreSpecification or derivative thereof. Access to encrypted data on storagedevices may be permanently removed by cryptographically erasing thestorage device that remove the internal encryption keys. Cryptographicerase is also known as ‘crypto erase.’ Removal is typically achieved byoverwriting the encryption keys with a random pattern of data, achievedby generating a new randomly generated encryption key to replace theoriginal one. The operation of overwriting a file is known as‘shredding.’ Alternatively, customer data may be permanently removed byshredding the files that contain the customer data. Overwriting gigabitsof data, however, will take substantially longer than overwriting theinternal encryption keys. However, writing to a failing storage device465, conflicts with the requirement to rapidly isolate the failingdevice 465 from the same SCSI zone A 470 that the non-failing storagedevices 260, 360, 460 are operating in.

In one, access to customer data is eliminated using crypto erase. Atstep 550, to protect customer data, the sender component 610 of themanagement apparatus 600 sends a protect message comprising a command tothe SES node 240, 430, 440 through the internal network 450 of SCSI zoneA 470. The SES node 240, 340, 440 accepts the command from managementapparatus 600 and issues transactions to the failing storage device 465to complete a cryptographic erase of the failing storage device 465 onSCSI zone B 480. The cryptographic erase requires a secure session to beset up between the failing storage device 465 and the SES node 240, 340,440. The management apparatus knows the required authenticationcredentials to start the protect session and passes the externalauthentication credential encryption key to the SES node 240, 340, 440in SCSI zone A 470 such that it may open the required session. The SESnode 240, 340, 440 does not need to implement any form of authenticationkey store and may rely on transport from the management apparatus 600for all external authentication credential encryption key information.

In an alternative embodiment, customer data may be eliminated usingvarious data erase techniques. At step 550, to erase customer data, thesender component 610 of the management apparatus 600 sends a command tothe SES node 240, 430, 440 through the internal network 450 of SCSI zoneA 470. The SES node 240, 340, 440 accepts the command from managementapparatus 600 and issues write transactions to the failing storagedevice 465 to overwrite the customer data. If the customer data isprotected by cryptography, a secure session may be required to beinitiated between the failing storage device 465 and the SES node 240,340, 440. The management apparatus knows the required authenticationcredentials to start the secure session and passes the externalauthentication credential encryption key to the SES node 240, 340, 440in SCSI zone A 470 such that it may open the required session. The SESnode 240, 340, 440 does not need to implement any form of authenticationkey store and may rely on transport from the management apparatus 600for all external authentication credential encryption key information.At step 560, the failing storage device 465 that now has its customerdata permanently protected may be physically removed from the storageenclosure 220. The method ends at step 570.

As will be appreciated by one of ordinary skill in the art, aspects ofthe present invention may be embodied as a system, method or computerprogram product. Accordingly, aspects of the present invention may takethe form of an entirely hardware embodiment, an entirely softwareembodiment (including firmware, resident software, micro-code, etc.) oran embodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a compact disc (CD), a digital versatile disk (DVD), a blu-ray disc(BD), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wired, optical fiber cable, RF, etc., or any suitable combination of theforegoing. Computer program code for carrying out operations for aspectsof the present invention may be written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, Smalltalk, C++ or the like and conventionalprocedural programming languages, such as the “C” programming languageor similar programming languages. The program code may execute entirelyon the user's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable data processing apparatus, orother devices to cause a series of operational steps to be performed onthe computer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the above figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While one or more embodiments of the present invention have beenillustrated in detail, the skilled artisan will appreciate thatmodifications and adaptations to those embodiments may be made withoutdeparting from the scope of the present invention as set forth in thefollowing claims.

1. A management apparatus operable for protecting data on a failingstorage device in a data processing system including a storage arrayhaving at least one of a plurality of storage devices, comprising: areceiver component for receiving a failure message, wherein the failuremessage indicates that the plurality of storage devices comprises thefailing storage device; an analyzer component in communication with thereceiver component and responsive to receipt of the failure message, foranalyzing the failure message; and a sender component in communicationwith the analyzer component, wherein the sender component is adaptedfor: in response to the analyzer component determining the failingstorage device, sending a zoning message, the zoning message instructingthe storage array to isolate the failing storage device, and sending aprotect message, wherein the protect message instructs the storage arrayto protect data on the failing storage device.
 2. The managementapparatus of claim 1, wherein the protect message comprises an erasecommand.
 3. The management apparatus of claim 2, wherein the erasecommand comprises a cryptographic erase command.
 4. The managementapparatus of claim 2, wherein the erase command comprises a storagedevice write command.
 5. The apparatus of claim 1, wherein isolating thefailed storage device further comprises zoning the failed storage devicein a network with a SCSI enclosure services (SES) node.
 6. The apparatusof claim 1, wherein the at least one of the plurality of storage devicesis a disk drive.
 7. The apparatus of claim 1, wherein the at least oneof the plurality of storage devices is a tape drive.
 8. A method forprotecting data on a failing storage device in a data processing systemusing a processor device, comprising: receiving a failure message,wherein the message indicates that the plurality of storage devicescomprises a failing storage device; responsive to receipt of a failuremessage, analyzing the failure message; determining the failing storagedevice; sending a zoning message, wherein the zoning message instructs astorage array to isolate the failing storage device; and sending aprotect message, wherein the protect message instructs the storage arrayto protect data on the failing storage device.
 9. The method of claim 8,wherein sending the protect message comprises sending an erase command.10. The method of claim 9, wherein sending the erase command comprisessending a cryptographic erase command.
 11. The method of claim 9,wherein sending the erase command comprises sending a storage devicewrite command.
 12. The method of claim 8, wherein isolating the failedstorage device further comprises zoning the failed storage device in anetwork with a SCSI enclosure services (SES) node.
 13. A computerprogram product for protecting data on a failing storage device in adata processing system including a storage array having at least one ofa plurality of storage devices, the computer program product comprisinga computer-readable storage medium having computer-readable program codeportions stored therein, the computer-readable program code portionscomprising: a first executable portion for receiving a failure message,wherein the message indicates that the plurality of storage devicescomprises a failing storage device; a second executable portion for,responsive to receipt of a failure message, analyzing the failuremessage; a third executable portion for determining the failing storagedevice; a fourth executable portion for sending a zoning message,wherein the zoning message instructs a storage array to isolate thefailing storage device; and a fifth executable portion for sending aprotect message, wherein the protect message instructs the storage arrayto protect data on the failing storage device.
 14. The computer programproduct of claim 13, further including a sixth executable portion for,pursuant to sending the protect message, sending an erase command. 15.The computer program product of claim 14, further including a seventhexecutable portion for, pursuant to sending the erase command, sending acryptographic erase command.
 16. The computer program product of claim13, further including a sixth executable portion for, pursuant tosending the erase command, sending a storage device write command. 17.The computer program product of claim 13, further including a sixthexecutable portion for, pursuant to isolating the failed storage device,zoning the failed storage device in a network with a SCSI enclosureservices (SES) node.